#include <18f4550.h>            //Se agrega el pic utilizado
#fuses XT,nowdt,noprotect,nolvp //Se configuran los fusibles (4MHz,NoPerroguardian,No proteje codigo fuente, No activa el low voltage programming)
#use delay (clock=4M)           //Configura retraso para cristal 
#include <kbd1.c> // Libreria del teclado personalizado.
void main()
{
   char k;   // Se declara la variable para guardar el dato del teclado.
   int x;
   kbd_init();
   port_b_pullups(TRUE); // Se configura en pullup el puerto B.
   for(;;){
   k=kbd_getc();
   x=k-48; //Convertir a valor numerico
   
   
   switch(x)
   {
   case 0:
   output_low(PIN_A0);output_low(PIN_A1);output_low(PIN_A2);output_low(PIN_A3);break;
   case 1:
   output_high(PIN_A0);output_low(PIN_A1);output_low(PIN_A2);output_low(PIN_A3);break;
   case 2:
   output_low(PIN_A0);output_high(PIN_A1);output_low(PIN_A2);output_low(PIN_A3);break;
   case 3:
   output_high(PIN_A0);output_high(PIN_A1);output_low(PIN_A2);output_low(PIN_A3);break;
   case 4:
   output_low(PIN_A0);output_low(PIN_A1);output_high(PIN_A2);output_low(PIN_A3);break;
   case 5:
   output_high(PIN_A0);output_low(PIN_A1);output_high(PIN_A2);output_low(PIN_A3);break;
   case 6:
   output_low(PIN_A0);output_high(PIN_A1);output_high(PIN_A2);output_low(PIN_A3);break;
   case 7:
   output_high(PIN_A0);output_high(PIN_A1);output_high(PIN_A2);output_low(PIN_A3);break;
   case 8:
   output_low(PIN_A0);output_low(PIN_A1);output_low(PIN_A2);output_high(PIN_A3);break;
   case 9:
   output_high(PIN_A0);output_low(PIN_A1);output_low(PIN_A2);output_high(PIN_A3);break;
   default:
   break;
   }
   }
   }
